Skip to content

Integrate inline composer dictation - #31

Merged
Juliusolsson05 merged 1 commit into
mainfrom
feat/dictation-integration
Apr 28, 2026
Merged

Juliusolsson05 merged 1 commit into
mainfrom
feat/dictation-integration

Conversation

@Juliusolsson05

Copy link
Copy Markdown
Owner

Summary

  • add cc-shell main/preload IPC for package-owned Deepgram streaming dictation
  • add inline composer MIC/REC control that appends wrapped STT text into the active draft
  • add Dictation settings with Deepgram provider toggle and arbitrary hotkey capture defaulting to Fn

Verification

  • npm run test:settings-coerce
  • npm run test:dictation
  • npm run build (passed with temporary local submodule symlinks because this worktree's submodule folders are empty)

Notes

  • Bare Fn is stored as the default binding, but renderer keydown cannot guarantee native macOS Fn visibility. Exact standalone-app behavior will require porting the macOS CGEventTap helper into cc-shell if we want Fn to work globally/app-wide.

@Juliusolsson05
Juliusolsson05 merged commit a6fb02a into main Apr 28, 2026
@Juliusolsson05
Juliusolsson05 deleted the feat/dictation-integration branch July 7, 2026 21:51
Juliusolsson05 added a commit that referenced this pull request Sep 18, 2026
…ed parser fix

Point packages/agent-transcript-parser at 7aae690, the merge commit of parser
PR #31. Its tree is identical to the branch tip the suites below ran against.
That merge carries the review fixes: a protection lift that takes only the
rungs it needs (the recorded transcript keeps its six newest tool outputs), an
idempotent input trim so one loss is never counted twice, and a Claude
projector that re-encodes only what the API accepts and heals transcripts the
old projector had already poisoned.

Review of the host side found that the disclosure this fix adds could not be
read. The success toast used the two-second default and clamps to three lines,
and the new clauses came last, so in a narrow pane they were exactly what the
clamp removed. Lossy switch toasts, pane and bulk, now stay up for ten seconds,
and describeShrink leads with what the user must act on, the omitted
attachments and the trimmed newest turns, before the counts in ladder order.
Every clause singularises; the lift often clears exactly one item, which made
"1 tool outputs cleared" the common case rather than the rare one.

A switch through the real planner whose only loss is an old pasted image now
pins truncatedBeforeSwitch and the toast line end to end. It is the one state
where clearedAttachments alone carries the flag, and removing the term from
the sum fails that test and nothing else did before.

The design doc gains the Claude image re-encoding, the still-unproven live API
acceptance, the subset-based lift and a "never copy a foreign attachment part
verbatim" rule. The 2026-09-05 spec gets As-built item 11 because the parser
header cites it and its rung numbers no longer match the code.

Refs #998, #999

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant